package otros;


import java.util.InputMismatchException;
import java.util.Scanner;
import ValueObjects.VOPartida;
import logica.partidas.*;
import logica.jugadores.*;
import logica.peliculas.*;

public class TestPartidas {
	public static void main(String[] args) {
		
		System.out.println("MENU DE PRUEBAS PARA PARTIDAS\n");
		  
	    System.out.println("");
	    
	    System.out.println("1 - ultimaPartidaJugada");

	    System.out.println("2 - listarPartidas");

		System.out.println("3 - Volver al menu anterior");
		
		Pelicula pe51 = new Pelicula("LA CASA DE CERA", "Todo esta hecho con velas");
		Pelicula pe52 = new Pelicula("SHREK TERCERO", "Amor verde");
		Pelicula pe53 = new Pelicula("RAMBO", "Guerrero indestructible");
		Pelicula pe54 = new Pelicula("TIBURON", "Amenaza marina");
		Pelicula pe55 = new Pelicula("DURMIENDO CON EL ENEMIGO", "Cuando duermes con quien no debes dormir...");
		Peliculas pelis52 = new Peliculas();
		pelis52.insert(pe51);
		pelis52.insert(pe52);
		pelis52.insert(pe53);
		pelis52.insert(pe54);
		pelis52.insert(pe55);
		
		Jugadores diccioJugadores = new Jugadores();
		Jugador jugadorPruebaPartidas = new Jugador("JugadorPrueba", "JugadorPrueba", 0, 0, 0);
		Partida p1 = new Partida(1, 50, true, true, pe51.getTitulo(), pe51);
		Partida p2 = new Partida(2, 56, true, true, pe52.getTitulo(), pe52);
		Partida p3 = new Partida(2, -48, true, true, "---BO", pe53);
		jugadorPruebaPartidas.agregarPartida(p1);
		jugadorPruebaPartidas.agregarPartida(p2);
		jugadorPruebaPartidas.agregarPartida(p3);
		
		
		
		boolean salir2 = false;
		while(!salir2){
			
			int n1 = 0;
			Scanner sc1 = new Scanner(System.in);
			System.out.print("\nIngrese una opcion: \n");
			try{
				n1 = sc1.nextInt();
			}catch(InputMismatchException e){
				n1 = 14;
			}
		    switch (n1){
		    case 1:
//				public Partida ultimaPartidaJugada();
				System.out.println("Se devuelve la ultima partida jugada por el jugador: " + jugadorPruebaPartidas.getNombre());
				Partida ultimaPartida = jugadorPruebaPartidas.ultimaPartida();
				System.out.println("Datos de la ultima Partida: ");
				System.out.println("ID: "+ultimaPartida.getIdPartida());
				System.out.println("Puntaje: "+ultimaPartida.getPuntaje());
				System.out.println("Texto adivinado: "+ultimaPartida.getTextoAdivinado());
				System.out.println("Esta acertada: "+ultimaPartida.getEstaAcertada());
				System.out.println("Esta finalizada: "+ultimaPartida.getEstaFinalizada());							
		    	break;
		    case 2:
//				public VOPartida[] listarPartidas();
		    	System.out.println("Se listan las partidas registradas ordenadas por ID del jugador: "+ jugadorPruebaPartidas.getNombre());
		    	VOPartida partidasAListar [] = jugadorPruebaPartidas.listarPartidas();
		    	for(int i20=0;i20<partidasAListar.length;i20++){
		    		System.out.println("ID: "+partidasAListar[i20].getIdPartida());
					System.out.println("Puntaje: "+partidasAListar[i20].getPuntaje());
					System.out.println("Texto adivinado: "+partidasAListar[i20].getTextoAdivinado());
					System.out.println("Esta acertada: "+partidasAListar[i20].getEstaAcertada());
					System.out.println("Esta finalizada: "+partidasAListar[i20].getEstaFinalizada());
					System.out.println("----------------------------------------------");
	    		}
		    	break;
		    case 3:
		    	salir2 = true;
				break;
	    		
		    default: System.out.println("No ingreso un numero correcto. Intente nuevamente.");
		    
		    }
		}

    	System.out.println("MENU DE PRUEBAS PARA PARTIDA\n");
		  
	    System.out.println("");
	    
	    System.out.println("1 - arriesgarPelicula");

	    System.out.println("2 - chequearLetra");

	    System.out.println("3 - cantidadOcurrencias");

	    System.out.println("4 - devolverPosiciones");

	    System.out.println("5 - sustituirLetra");

	    System.out.println("6 - letraIngresada");

	    System.out.println("7 - Volver al menu anterior");
	    
    	boolean salir3 = false;
		while(!salir3){
			
			int n2 = 0;
			Scanner sc2 = new Scanner(System.in);
			System.out.print("\nIngrese una opcion: \n");
			try{
				n2 = sc2.nextInt();
			}catch(InputMismatchException e){
				n2 = 14;
			}
		    switch (n2){
		    case 1:
//		    	public String convertirAguiones();

		    	//  boolean arriesgarPelicula(String tituloPelicula);
		    	System.out.println("Verifica si el String ingresado es igual al titulo de la pelicula");
		    	String titulo1 = "LA CASA DE CERA";
		    	System.out.println("Texto de la Pelicula: "+ titulo1);
			    System.out.println("Ingrese un String a comparar con el titulo:");
				Scanner sc10 = new Scanner(System.in);
			    String tituloAriesgado = sc10.nextLine();
			    Pelicula pe1 = new Pelicula(titulo1, "Todo esta hecho con velas");
	    		Partida pa1 = new Partida(1, 0, false, false, "", pe1);
	    		if(pa1.arriesgarPelicula(tituloAriesgado))
		    		System.out.println("El texto corresponde con la pelicula");
	    		else
		    		System.out.println("El texto no corresponde con la pelicula");
		    	break;
		    case 2:
		    	//  boolean chequearLetra(char letra){
		    	System.out.println("Chequea si la letra ingresada por paramentro pertenece al titulo");
		    	String titulo2 = "LA CASA DE CERA";
		    	System.out.println("Texto de la Pelicula: "+ titulo2);
			    System.out.println("Ingrese un caracter perteneciente al titulo:");
				Scanner sc20 = new Scanner(System.in);
	    		char car2 = sc20.next().charAt(0);
	    		Pelicula pe2 = new Pelicula(titulo2, "Todo esta hecho con velas");
	    		Partida pa2 = new Partida(1, 0, false, false, "", pe2);
	    		if(pa2.chequearLetra(car2))
		    		System.out.println("Se encuentra");
	    		else
		    		System.out.println("No se encuentra");
		    	break;
		    case 3:
		    	//  int cantidadOcurrencias(String cadena, char caracter) {
		    	System.out.println("Devuelve la cantidad de veces que aparece un caracter dado en un String");
		    	System.out.println("Metodo auxiliar para devolverPosiciones");
		    	String texto3 = "A AB ABC ABCD DCBA CBA BA A";
		    	System.out.println("Elija una letra del siguiente texto: "+texto3);
		    	Scanner sc30 = new Scanner(System.in);
	    		char car3 = sc30.next().charAt(0);
	    		Partida p30 = new Partida();
		    	System.out.println("Cantidad de veces que aparece: "+p30.cantidadOcurrencias(texto3,car3));
		    	break;
		    case 4:
		    	//  int[] devolverPosiciones(String texto, char letra);// Auxiliar de sustituir letra
		    	System.out.println("Devuelve las posiciones en donde se encuentra el caracter ingresado dentro del String pasado");
		    	String texto4 = "A AB ABC ABCD DCBA CBA BA A";
		    	System.out.println("Elija una letra del siguiente texto: "+texto4);
		    	Scanner sc40 = new Scanner(System.in);
	    		char car4 = sc40.next().charAt(0);
	    		Partida p4 = new Partida();
	    		int posiciones[] = p4.devolverPosiciones(texto4, car4);
	    		for(int i4=0;i4<posiciones.length;i4++){
			    	System.out.println("Posicion " + i4 + ":" + posiciones[i4] +"\n");
	    		}
		    	break;
		    case 5:
		    	//  void sustituirLetra(char letra);
		    	System.out.println("Se sustituye la letra ingresada por su correspondiente en texto adivinado");
		    	System.out.println("Precondicion: la letra forma parte del titulo y no fue ingresada aun");
		    	String titulo = "LA CASA DE CERA";
		    	System.out.println("Texto de la Pelicula: "+ titulo);
		    	String textoAdivinado = "-- ---- -- ----";
		    	System.out.println("Texto adivinado hasta el momento: "+ textoAdivinado);
			    System.out.println("Ingrese un caracter perteneciente al titulo:");
				Scanner sc50 = new Scanner(System.in);
	    		char car = sc50.next().charAt(0);
	    		Pelicula pe5 = new Pelicula(titulo, "Todo esta hecho con velas");
	    		Partida pa5 = new Partida(1, 0, false, false, textoAdivinado, pe5);
	    		pa5.sustituirLetra(car);
		    	System.out.println("Texto adivinado de la Pelicula luego de ingresar la letra: "+ pa5.getTextoAdivinado());
		    	break;
		    case 6:
		    	// boolean letraIngresada(char c);
			    System.out.println("Se verifica si la letra ingresada ya esta ingresada en el texto adivinado");
			    String textoAdivinado6 = "-A CA-A D- C-RA";
			    System.out.println("Ingrese un caracter para verificar si existe en el texto:  " + textoAdivinado6);
				Scanner sc60 = new Scanner(System.in);
	    		char car6 = sc60.next().charAt(0);
	    		Pelicula pe6 = new Pelicula(textoAdivinado6, "Todo esta hecho con velas");
	    		Partida pa6 = new Partida(1, 0, false, false, textoAdivinado6, pe6);
	    		if(pa6.letraIngresada(car6))
		    		System.out.println("Ya esta ingresada");
	    		else
		    		System.out.println("No esta ingresada");
	    		
		    	break;
		    case 7:
		    	salir3 = true;
	    		break;
		    }
				
		}	
	}
	
}